grammar CHECK;

stat: fulexp ( '&&' fulexp )*
      | fulexp ('||' fulexp)*
      | # empty
      ;
fulexp：'(' exp ')'
       | exp
       |# empty
       ;

exp : singleexp ('||' singleexp)*
     | singleexp ( '&&'  singleexp)*
     |# empty
     ;
singleexp: fieldName  operator value;




OPERATOR: 'in'
          |  '='
          |  '>'
          ;
STRING : '"' ('""'|~'"')* '"' ;


